ef27f6401a7647a41e9ff24bc1ea3cda7c05bbe3,flying-saucer-core/src/main/java/org/xhtmlrenderer/render/BorderPainter.java,BorderPainter,paintBorderSide,#OutputDevice#BorderPropertySet#Rectangle#number#number#IdentValue#number#boolean#,380
Before Change
(int) (border.right() / 2),
(int) (border.bottom() / 2),
(int) (border.left() / 2));
if (borderSideStyle == IdentValue.RIDGE) {
paintBorderSideShape(
outputDevice, bounds, bd2, border.lighten(borderSideStyle),
border.darken(borderSideStyle),
0, 1, sides, currentSide, bevel);
paintBorderSideShape(
outputDevice, bounds, border, border.darken(borderSideStyle),
border.lighten(borderSideStyle),
1, .5f, sides, currentSide, bevel);
} else {
paintBorderSideShape(
outputDevice, bounds, bd2, border.darken(borderSideStyle),
border.lighten(borderSideStyle),
0, 1, sides, currentSide, bevel);
paintBorderSideShape(
outputDevice, bounds, border, border.lighten(borderSideStyle),
border.darken(borderSideStyle),
1, .5f, sides, currentSide, bevel);
}
} else if (borderSideStyle == IdentValue.OUTSET) {
paintBorderSideShape(outputDevice, bounds, border,
border.lighten(borderSideStyle),
border.darken(borderSideStyle),
0, 1, sides, currentSide, bevel);
} else if (borderSideStyle == IdentValue.INSET) {
paintBorderSideShape(outputDevice, bounds, border,
border.darken(borderSideStyle),
border.lighten(borderSideStyle),
0, 1, sides, currentSide, bevel);
} else if (borderSideStyle == IdentValue.SOLID) {
outputDevice.setStroke(new BasicStroke(1f));
if(currentSide == TOP) {
outputDevice.setColor(border.topColor());
outputDevice.fill(generateBorderShape(bounds, TOP, border, true, 0, 1));
}
if(currentSide == RIGHT) {
outputDevice.setColor(border.rightColor());
outputDevice.fill(generateBorderShape(bounds, RIGHT, border, true, 0, 1));
}
if(currentSide == BOTTOM) {
outputDevice.setColor(border.bottomColor());
outputDevice.fill(generateBorderShape(bounds, BOTTOM, border, true, 0, 1));
}
if(currentSide == LEFT) {
outputDevice.setColor(border.leftColor());
outputDevice.fill(generateBorderShape(bounds, LEFT, border, true, 0, 1));
}
} else if (borderSideStyle == IdentValue.DOUBLE) {
paintDoubleBorder(outputDevice, border, bounds, sides, currentSide, bevel);
} else {
int thickness = 0;
if (currentSide == BorderPainter.TOP) thickness = (int) border.top();
if (currentSide == BorderPainter.BOTTOM) thickness = (int) border.bottom();
if (currentSide == BorderPainter.RIGHT) thickness = (int) border.right();
if (currentSide == BorderPainter.LEFT) thickness = (int) border.left();
if (borderSideStyle == IdentValue.DASHED) {
outputDevice.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
paintPatternedRect(outputDevice, bounds, border, border, new float[]{8.0f + thickness * 2, 4.0f + thickness}, sides, currentSide, xOffset);
outputDevice.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
}
if (borderSideStyle == IdentValue.DOTTED) {
// turn off anti-aliasing or the dots will be all blurry
After Change
}
}
private static void paintBorderSide(OutputDevice outputDevice,
final BorderPropertySet border, final Rectangle bounds, final int sides,
int currentSide, final IdentValue borderSideStyle, int xOffset, boolean bevel) {
if (borderSideStyle == IdentValue.RIDGE || borderSideStyle == IdentValue.GROOVE) {
BorderPropertySet bd2 = new BorderPropertySet((int) (border.top() / 2),
(int) (border.right() / 2),
(int) (border.bottom() / 2),
(int) (border.left() / 2));
BorderPropertySet borderA = null,
borderB = null;
if (borderSideStyle == IdentValue.RIDGE) {
borderA = border;
borderB = border.darken(borderSideStyle);
} else {
borderA = border.darken(borderSideStyle);
borderB = border;
}
paintBorderSideShape(
outputDevice, bounds, bd2, borderA,
borderB,
0, 1, sides, currentSide, bevel);
paintBorderSideShape(
outputDevice, bounds, border, borderB,
borderA,
1, .5f, sides, currentSide, bevel);
} else if (borderSideStyle == IdentValue.OUTSET) {
paintBorderSideShape(outputDevice, bounds, border,
border,
border.darken(borderSideStyle),
0, 1, sides, currentSide, bevel);
} else if (borderSideStyle == IdentValue.INSET) {
paintBorderSideShape(outputDevice, bounds, border,
border.darken(borderSideStyle),
border,
0, 1, sides, currentSide, bevel);
} else if (borderSideStyle == IdentValue.SOLID) {
outputDevice.setStroke(new BasicStroke(1f));
if(currentSide == TOP) {
outputDevice.setColor(border.topColor());
outputDevice.fill(generateBorderShape(bounds, TOP, border, true, 0, 1));
}
if(currentSide == RIGHT) {
outputDevice.setColor(border.rightColor());
outputDevice.fill(generateBorderShape(bounds, RIGHT, border, true, 0, 1));
}
if(currentSide == BOTTOM) {
outputDevice.setColor(border.bottomColor());
outputDevice.fill(generateBorderShape(bounds, BOTTOM, border, true, 0, 1));
}
if(currentSide == LEFT) {
outputDevice.setColor(border.leftColor());
outputDevice.fill(generateBorderShape(bounds, LEFT, border, true, 0, 1));
}
} else if (borderSideStyle == IdentValue.DOUBLE) {
paintDoubleBorder(outputDevice, border, bounds, sides, currentSide, bevel);
} else {
int thickness = 0;
if (currentSide == BorderPainter.TOP) thickness = (int) border.top();
if (currentSide == BorderPainter.BOTTOM) thickness = (int) border.bottom();
if (currentSide == BorderPainter.RIGHT) thickness = (int) border.right();
if (currentSide == BorderPainter.LEFT) thickness = (int) border.left();
if (borderSideStyle == IdentValue.DASHED) {
//outputDevice.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
paintPatternedRect(outputDevice, bounds, border, border, new float[]{8.0f + thickness * 2, 4.0f + thickness}, sides, currentSide, xOffset);
//outputDevice.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
}
if (borderSideStyle == IdentValue.DOTTED) {